package org.kairosdb.core.datapoints;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import org.kairosdb.core.DataPoint;
import java.io.DataInput;
import java.io.IOException;
/**
Used to show how to create a custom data type
Created by bhawkins on 6/30/14.
*/
public class ComplexDataPointFactory implements DataPointFactory
{
public static final String DST_COMPLEX = "kairos_complex";
public static final String GROUP_TYPE = "complex";
@Override
public String getDataStoreType()
{
return DST_COMPLEX;
}
@Override
public String getGroupType()
{
return GROUP_TYPE;
}
@Override
public DataPoint getDataPoint(long timestamp, JsonElement json) throws IOException
{
if (json.isJsonObject())
{
JsonObject object = json.getAsJsonObject();
double real = object.get("real").getAsDouble();
double imaginary = object.get("imaginary").getAsDouble();
return new ComplexDataPoint(timestamp, real, imaginary);
}
else
throw new IOException("JSON object is not a valid complex data point");
}
@Override
public DataPoint getDataPoint(long timestamp, DataInput buffer) throws IOException
{
double real = buffer.readDouble();
double imaginary = buffer.readDouble();
return new ComplexDataPoint(timestamp, real, imaginary);
}
}